$(document).ready(function() {

    $("#idOpcionesUsuario").on("click", ".option", function(event) {
        $('#modalActContrasenha').modal('show');
        $('#modalActContrasenha').css("visibility", "visible");
    });

    $('#actualizarContrasenhaForm').bootstrapValidator({        
        feedbackIcons: {
            valid: 'glyphicon glyphicon-ok',
            invalid: 'glyphicon glyphicon-remove',
            validating: 'glyphicon glyphicon-refresh'
        },
        fields: {
            contrasenhaActual: {
                validators: {
                    notEmpty: {
                        message: 'No puede estar vac&iacute;o.'
                    },
                    stringLength: {
                        min: 4,
                        message: 'No puede tener menos de 4 caracteres.'
                    }
                }
            },
            contrasenhaNueva: {
                validators: {
                    notEmpty: {
                        message: 'No puede estar vac&iacute;o.'
                    },
                    stringLength: {
                        min: 4,
                        message: 'No puede tener menos de 4 caracteres.'
                    },
                    identical: {
                        field: 'confirmarContrasenha',
                        message: 'No son iguales.'
                    }
                }
            },
            confirmarContrasenha: {
                validators: {
                    notEmpty: {
                        message: 'No puede estar vac&iacute;o.'
                    },
                    stringLength: {
                        min: 4,
                        message: 'No puede tener menos de 4 caracteres.'
                    },
                    identical: {
                        field: 'contrasenhaNueva',
                        message: 'No son iguales.'
                    }
                }
            }
        }
    }).on('success.form.bv', function(e) {
        // Prevent form submission
        e.preventDefault();

        // Get the form instance
        var $form = $(e.target);

        // Get the BootstrapValidator instance
        var bv = $form.data('bootstrapValidator');

        confirmar();

    });
});

function confirmar() {
    var objeto = new Object();

    var md = forge.md.md5.create();
    md.start();
    md.update($("#inputActContrasenhaActual").val(), "utf8");
    objeto.passwordViejo = md.digest().toHex();
    
    md = forge.md.md5.create();
    md.update($("#inputActContrasenhaNueva").val(), "utf8");
    objeto.password = md.digest().toHex();

    $.ajax({
        url: '/EmergenciasWAR/usuarios/contrasenha',
        dataType: 'json',
        type: 'post',
        data: JSON.stringify(objeto),
        success: function(data) {

            if (data.estado == "2") {
                bootbox.alert(data.mensaje, function() {
                    window.location.href = '/EmergenciasWAR/login';
                });
            } else if (data.estado == "0") {
                bootbox.alert(data.mensaje);
                

                //hace que todos los campos del form se reseteen
                $("#actualizarContrasenhaForm")[0].reset();
                //hace que los mensajes e iconos de validación desaparezcan.
                $("#actualizarContrasenhaForm").data('bootstrapValidator').resetForm();

                $('#modalActContrasenha').modal('hide');
                $('#modalActContrasenha').css("visibility", "hidden");
            } else {
                bootbox.alert(data.mensaje);
                //habilita de nuevo el boton de guardar
                $("#buttonConfirmar").prop("disabled", false);
            }

        },
        error: function() {
            bootbox.alert("Datos no actualizados. Intente de nuevo");
            //habilita de nuevo el boton de guardar
            $("#buttonConfirmar").prop("disabled", false);
        }
    });
}